package jy.game.components.item;

import java.util.ArrayList;
import java.util.List;

import jy.game.BasePojo;
import jy.game.JyRequire;
import jy.game.components.wuxue.JyTrigger;
import jy.game.components.wuxue.box.JySkillInstance;
import jy.game.components.wuxue.box.JySpecialSkillInstance;
import wx.xml.simpleframework.xml.Attribute;
import wx.xml.simpleframework.xml.Element;
import wx.xml.simpleframework.xml.ElementList;
import wx.xml.simpleframework.xml.Root;


@Root(name = "item")
public class JyItemInstance extends BasePojo {
    @Attribute(name = "name") public               String          name;
    @ElementList(name = "addition_trigger", inline = true) public List<JyTrigger> additionTriggers = new ArrayList<>();
    // [XmlIgnore]
    // [XmlIgnore]
    private                                        JyItem          _item;

    // (get) Token: 0x060003EE RID: 1006 RVA: 0x0002B260 File Offset: 0x00029460
    @Override public /*override*/ String getPK() {
        {
            StringBuilder text = new StringBuilder(this.type() + "_" + this.name);
            for (JyTrigger trigger : this.additionTriggers) {
                text.append("_").append(trigger.getPK());
            }
            return text.toString();
        }
    }

    // (get) Token: 0x060003EF RID: 1007 RVA: 0x00004281 File Offset: 0x00002481
    // (set) Token: 0x060003F0 RID: 1008 RVA: 0x00004289 File Offset: 0x00002489

    public void setName(String value) {
        this.name = value;
        this._item = JyItem.getItem(value);
    }

    // (get) Token: 0x060003F1 RID: 1009 RVA: 0x0000429E File Offset: 0x0000249E
    //[XmlIgnore]
    public String desc() {
        return this.item().desc;
    }

    // (get) Token: 0x060003F2 RID: 1010 RVA: 0x000042AB File Offset: 0x000024AB
    //[XmlIgnore]
    public String talent() {
        {
            return this.item().talent;
        }
    }

    // (get) Token: 0x060003F3 RID: 1011 RVA: 0x000042B8 File Offset: 0x000024B8
    //[XmlIgnore]
    public String pic() {
        return this.item().pic;
    }

    // (get) Token: 0x060003F4 RID: 1012 RVA: 0x000042C5 File Offset: 0x000024C5
    //[XmlIgnore]
    public int level() {
        {
            return this.item().level;
        }
    }

    // (get) Token: 0x060003F5 RID: 1013 RVA: 0x000042D2 File Offset: 0x000024D2
    //[XmlIgnore]
    public int price() {
        {
            return this.item().price;
        }
    }

    // (get) Token: 0x060003F6 RID: 1014 RVA: 0x000042DF File Offset: 0x000024DF
    //[XmlIgnore]
    public boolean drop() {
        {
            return this.item().drop;
        }
    }

    // (get) Token: 0x060003F7 RID: 1015 RVA: 0x000042EC File Offset: 0x000024EC
    // [XmlIgnore]
    public String[] talents() {
        {
            return this.talent().split("#");
        }
    }

    // (get) Token: 0x060003F8 RID: 1016 RVA: 0x00004305 File Offset: 0x00002505
    // [XmlIgnore]
    public String canZhangSkill() {
        {
            return this.item().canZhangSkill;
        }
    }

    // (get) Token: 0x060003F9 RID: 1017 RVA: 0x00004312 File Offset: 0x00002512
    // [XmlIgnore]
    public List<JyRequire> requires() {
        {
            return this.item().requires;
        }
    }


//    public JyColor GetColor() {
//        if (this.additionTriggers.size() > 16) {
//            return Color.black;
//        }
//        if (this.additionTriggers.size() == 16) {
//            return new JyColor(0.098f, 0f, 0f, 1f);
//        }
//        if (this.additionTriggers.size() == 15) {
//            return new JyColor(0.196f, 0.098f, 0f, 1f);
//        }
//        if (this.additionTriggers.size() == 14) {
//            return new JyColor(0.196f, 0.196f, 0f, 1f);
//        }
//        if (this.additionTriggers.size() == 13) {
//            return new JyColor(0.196f, 0f, 0.196f, 1f);
//        }
//        if (this.additionTriggers.size() == 12) {
//            return new JyColor(0f, 0f, 0.196f, 1f);
//        }
//        if (this.additionTriggers.size() == 11) {
//            return new JyColor(0f, 0.196f, 0f, 1f);
//        }
//        if (this.additionTriggers.size() == 10) {
//            return Color.red;
//        }
//        if (this.additionTriggers.size() == 9) {
//            return new Color(1f, 0.216f, 0f, 1f);
//        }
//        if (this.additionTriggers.size() == 8) {
//            return new Color(1f, 0.412f, 0f, 1f);
//        }
//        if (this.additionTriggers.size() == 7) {
//            return new Color(1f, 0.608f, 0f, 1f);
//        }
//        if (this.additionTriggers.size() == 6) {
//            return new Color(1f, 0.804f, 0f, 1f);
//        }
//        if (this.additionTriggers.size() == 5) {
//            return Color.yellow;
//        }
//        if (this.additionTriggers.size() == 4) {
//            return Color.magenta;
//        }
//        if (this.additionTriggers.size() == 3) {
//            return Color.blue;
//        }
//        if (this.additionTriggers.size() == 2) {
//            return Color.green;
//        }
//        if (this.additionTriggers.size() == 1) {
//            return new Color(0.7f, 1f, 0.7f, 1f);
//        }
//        if (this.name().endsWith("残章")) {
//            return Color.blue;
//        }
//        if (this.type() == 8) {
//            return Color.red;
//        }
//        if (this.type() == 7) {
//            return Color.magenta;
//        }
//        return Color.white;
//    }

    // (get) Token: 0x060003FA RID: 1018 RVA: 0x0000431F File Offset: 0x0000251F
    // [XmlIgnore]
    List<JyTrigger> triggers() {
        {
            return this.item().triggers;
        }
    }

    // (get) Token: 0x060003FB RID: 1019 RVA: 0x0000432C File Offset: 0x0000252C
    // [XmlIgnore]
    public int coolDown() {
        {
            return this.item().coolDown;
        }
    }

    // (get) Token: 0x060003FC RID: 1020 RVA: 0x00004339 File Offset: 0x00002539
    // [XmlIgnore]
    public Iterable<JyTrigger> allTriggers() {

        List<JyTrigger> triggers = new ArrayList<>();
        for (JyTrigger trigger : this.triggers()) {
            triggers.add(trigger);
        }
        // List<JyTrigger>.Enumerator enumerator = default(List<JyTrigger>.Enumerator);
        for (JyTrigger trigger2 : this.additionTriggers) {
            triggers.add(trigger2);
        }
        return triggers;
    }


//    public /*override*/ String toString() {
//        String equipCase = this.EquipCase();
//        String text      = this.name() + "\n" + this.desc() + "\n";
//        if (!equipCase.equals("")) {
//            text = text + " \n装备条件 " + equipCase;
//        }
//        if (this.triggers().size() > 0) {
//            text += "\n";
//            for (JyTrigger arg : this.triggers()) {
//                text = text + arg + " ";
//            }
////            text = text.TrimEnd(new char[0]);
//        }
//        String[] array = this.talent().split("#");
//        if (array.length != 0) {
//            text += "\n天赋 ";
//            for (String str : array) {
//                String[] array3 = ((String) JyResourceManager.get("JyResource", "天赋." + str)).split("#");
//                String   str2   = "";
//                if (array3.length == 1) {
//                    str2 = array3[0];
//                } else {
//                    str2 = array3[1];
//                }
//                text = text + str2 + "\n";
//            }
////            text = text.TrimEnd(new char[0]);
//        }
//        if (this.coolDown() > 0 && RuntimeData.Instance.gameMode != "normal") {
//            text = text + "\n冷却回合数 " + this.coolDown().toString();
//        }
//        return text;
//    }


//    public void AddRandomTriggers(int number) {
//        if (this.itemType != Weapon && this.itemType != Armor && this.itemType != Accessories) {
//            return;
//        }
//        for (int i = 0; i < number; i++) {
//            this.AddRandomTrigger();
//        }
//    }


//    public void AddRandomTrigger() {
//        JyTrigger trigger = this.GenerateRandomTrigger(false);
//        if (trigger == null) {
//            return;
//        }
//        this.additionTriggers.add(trigger);
//    }


//    public JyTrigger GenerateRandomTrigger(boolean fromLaohu) {
//        try {
//            if (this.itemType != Weapon && this.itemType != Armor && this.itemType != Accessories) {
//                // FileLogger.instance.Log("JyItemInstance.cs:391 %s %s", this.name, this.itemType);
//                return null;
//            }
//            // FileLogger.instance.Log("JyItemInstance.cs:394 %s %s %s", this.name, this.itemType, this.level);
//
//            List<JyITTrigger> aviliavleTriggers = new ArrayList<JyITTrigger>();
//            int             totalWeight       = 0;
//            for (JyItemTrigger itemTrigger : JyResourceManager.getAll < JyItemTrigger > ()) {
//                if ((fromLaohu || (this.level.IsInRange(itemTrigger.MinLevel, itemTrigger.maxLevel))) || this.name.equals(itemTrigger.name)) {
//                    for (JyITTrigger ittrigger : itemTrigger.triggers) {
//                        totalWeight += ittrigger.Weight;
//                        ittrigger.itemTriggerMaxLevel = itemTrigger.maxLevel;
//                        aviliavleTriggers.add(ittrigger);
//                    }
//                }
//            }
//
//            if (aviliavleTriggers.Count == 0) {
//                // FileLogger.instance.Log("JyItemInstance.cs:407");
//                return null;
//            }
//
//            // 排序
//            aviliavleTriggers.Sort(delegate(JyITTrigger x, JyITTrigger y) {
//                int result = x.itemTriggerMaxLevel.CompareTo(y.itemTriggerMaxLevel);
//                if (result != 0) {
//                    return -result;
//                }
//                return -x.Weight.CompareTo(y.Weight);
//            });
//            // FileLogger.instance.Log("JyItemInstance.cs:420");
//
//            // 挑选出不同的加成
//            List<JyITTrigger> differentTriggers           = new ArrayList<JyITTrigger>();
//            int             totalDifferentTriggerWeight = 0;
//            for (JyITTrigger avaliableTrigger : aviliavleTriggers) {
//                boolean alreadyExist = false;
//                for (JyTrigger oldTrigger : this.additionTriggers) {
//                    // 避免相同
//                    if (avaliableTrigger.name == oldTrigger.name && !avaliableTrigger.HasPool) {
//                        alreadyExist = true;
//                        break;
//                    }
//                }
//                if (!alreadyExist) {
//                    totalDifferentTriggerWeight += avaliableTrigger.Weight;
//                    differentTriggers.add(avaliableTrigger);
//                }
//            }
//            // FileLogger.instance.Log("JyItemInstance.cs:438");
//
//            if (differentTriggers.size() == 0) {
//                // FileLogger.instance.Log("JyItemInstance.cs:441");
//                return aviliavleTriggers.random().GenerateItemTrigger(this.level);
//            }
//
//            for (JyITTrigger differentTrigger : differentTriggers) {
//                if (Tools.probabilityTest(differentTrigger.Weight / (double) totalDifferentTriggerWeight)) {
//                    // FileLogger.instance.Log("JyItemInstance.cs:447");
//                    JyTrigger trigger = differentTrigger.GenerateItemTrigger(this.level);
//                    // FileLogger.instance.Log("JyItemInstance.cs:449");
//                    return trigger;
//                }
//            }
//            // FileLogger.instance.Log("JyItemInstance.cs:451");
//            if (differentTriggers.Count == 0)
//                return null;
//            // FileLogger.instance.Log("JyItemInstance.cs:453");
//            JyITTrigger iTTrigger1 = differentTriggers.random();
//            // FileLogger.instance.Log("JyItemInstance.cs:455");
//            JyTrigger trigger1 = iTTrigger1.GenerateItemTrigger(this.level);
//            // FileLogger.instance.Log("JyItemInstance.cs:457");
//            return trigger1;
//
//            //int retryTimes = 0;
//            //JyTrigger trigger;
//            //for (; ; )
//            //{
//            //trigger = null;
//            //JyITTrigger ittrigger2 = null;
//            //for (JyITTrigger ittrigger3:aviliavleTriggers) {
//            //    if (Tools.probabilityTest((double)ittrigger3.Weight / (double)totalWeight)) {
//            //        trigger = ittrigger3.GenerateItemTrigger(this.level);
//            //        ittrigger2 = ittrigger3;
//            //        break;
//            //    }
//            //}
//            //// FileLogger.instance.Log("JyItemInstance.cs:423");
//            //if (trigger != null) {
//            //    // FileLogger.instance.Log("JyItemInstance.cs:424");
//            //    boolean  newTrigger = true;
//            //    for (JyTrigger trigger2:this.additionTriggers) {
//            //        // 避免相同
//            //        if (trigger.name == trigger2.name && !ittrigger2.HasPool) {
//            //            newTrigger = false;
//            //            break;
//            //        }
//            //        // 避免相同
//            //        if (trigger.name == trigger2.name && ittrigger2.HasPool && trigger.Argvs()[0] == trigger2.Argvs()[0]) {
//            //            newTrigger = false;
//            //            break;
//            //        }
//            //    }
//            //    // FileLogger.instance.Log("JyItemInstance.cs:424");
//            //    retryTimes++;
//            //    if (!newTrigger && retryTimes >= 10 && Tools.probabilityTest(0.1)) {
//            //        newTrigger = true;
//            //    }
//            //    if (newTrigger) {
//            //        break;
//            //    }
//            //} else {
//            //    // FileLogger.instance.Log("JyItemInstance.cs:444");
//            //}
//            //}
//
//            //// FileLogger.instance.Log("JyItemInstance.cs:447 %s", trigger == null);
//
//            //return trigger;
//        } catch (Exception e) {
//            // FileLogger.instance.LogException("JyItemInstance.cs:500", e);
//        }
//        return null;
//    }

//
//    public HashMap<String, Integer> getItemRequireAttrs() {
//        HashMap<String, Integer> dictionary = new HashMap<String, Integer>();
//        dictionary.clear();
//
//        for (JyRequire require : this.requires()) {
//            if (CommonSettings.RoleAttributeList.contains(require.name)) {
//                dictionary.put(require.name, Integer.parseInt(require.Argvs()[]));
//            }
//        }
//        return dictionary;
//    }


//    public List<String> getItemRequireTalents() {
//        List<String> list = new ArrayList<String>();
//        for (JyRequire require : this.requires()) {
//            if (require.name == "talent") {
//                list.add(require.Argvs());
//            }
//        }
//        return list;
//    }


//    public boolean CanEquip(Role r, boolean used) {
//        used = false;
//        if (this.requires == null) {
//            return false;
//        }
//        Map<String, int> itemRequireAttrs = this.getItemRequireAttrs();
//        for (String key : CommonSettings.RoleAttributeList) {
//            if (itemRequireAttrs.containsKey(key) && r.AttributesFinal[key] < itemRequireAttrs[key]) {
//                return false;
//            }
//        }
//        for (String talent : this.getItemRequireTalents()) {
//            if (!r.hasTalent(talent)) {
//                return false;
//            }
//        }
//
//        // 检查技能是否已经学过
//        if (this.itemType == Book || this.itemType == TalentBook || this.itemType == SpecialSkillBook) {
//            boolean hasNewSkill = false;
//            for (var trigger : this.triggers) {
//                if (trigger.name.equals("skill")) {
//                    int index = r.skills.FindIndex(delegate(JySkillInstance skill) {
//                        return skill.name.equals(trigger.Argvs()[0]);
//                    });
//                    if (index == -1) {
//                        hasNewSkill = true;
//                        break;
//                    }
//                } else if (trigger.name.equals("internalskill")) {
//                    int index = r.internalSkills.FindIndex(delegate(JyInternalSkillInstance skill) {
//                        return skill.name.equals(trigger.Argvs()[0]);
//                    });
//                    if (index == -1) {
//                        hasNewSkill = true;
//                        break;
//                    }
//                } else if (trigger.name.equals("talent")) {
//                    int index = r.talents.FindIndex(delegate(String talent) {
//                        return talent.equals(trigger.Argvs()[0]);
//                    });
//                    if (index == -1) {
//                        hasNewSkill = true;
//                        break;
//                    }
//                } else {
//
//                }
//            }
//
//            used = !hasNewSkill;
//            return hasNewSkill ? true : false;
//        }
//
//        return true;
//    }


    // (get) Token: 0x06000408 RID: 1032 RVA: 0x0002BE78 File Offset: 0x0002A078
//    public String EquipCase() {
//        if (this.requires() == null) {
//            return "";
//        }
//        String                   text             = "";
//        HashMap<String, Integer> itemRequireAttrs = this.getItemRequireAttrs();
//        for (String text2 : itemRequireAttrs.keySet()) {
//            String arg = CommonSettings.AttributeToChinese(text2);
//            text += String.format("%s>%s ", arg, itemRequireAttrs.get(text2));
//        }
//        for (String str : this.getItemRequireTalents()) {
//            text += String.format("具有天赋【" + str + "】 ");
//        }
//        return Tools.trimEnd(text, '\0');
//
//    }


//    public ItemSkill GetItemSkill() {
//        for (JyTrigger trigger : this.triggers) {
//            if (trigger.name.equals("skill")
//                || trigger.name.equals("internalskill")
//                || trigger.name.equals("specialskill")
//                || trigger.name.equals("talent")) {
//                int    maxLevel = ((trigger.Argvs().length <= 1) ? 1 : Integer.parseInt(trigger.Argvs()[1]));
//                String name     = trigger.Argvs()[0];
//                // // FileLogger.instance.Log("JyItemInstance.cs:514 %s %s", name, maxLevel);
//                return new ItemSkill {
//                    isInternal = trigger.name.equals("internalskill"),
//                        SkillName = name,
//                        maxLevel = maxLevel
//                } ;
//            }
//        }
//        return null;
//    }


//    public ItemResult TryUse(Role source, Role target) {
//        ItemResult itemResult = new ItemResult();
//        for (JyTrigger trigger : this.item.triggers) {
//            String name = trigger.name;
//            switch (name) {
//                case "AddHp":
//                    int num = Integer.parseInt(trigger.Argvs()[0]);
//                    itemResult.Hp += num;
//                    break;
//                case "RecoverHp":
//                    int num2 = (int) (target.maxhp * (Integer.parseInt(trigger.Argvs()[0]) / 100.0));
//                    itemResult.Hp += num2;
//                    break;
//                case "AddMp":
//                    int num3 = Integer.parseInt(trigger.Argvs()[0]);
//                    itemResult.Mp += num3;
//                    break;
//                case "RecoverMp":
//                    int num4 = (int) (target.maxmp * (Integer.parseInt(trigger.Argvs()[0]) / 100.0));
//                    itemResult.Mp += num4;
//                    break;
//                case "解毒":
//                    itemResult.DescPoisonLevel = Integer.parseInt(trigger.Argvs()[0]);
//                    itemResult.DescPoisonDuration = Integer.parseInt(trigger.Argvs()[1]);
//                    break;
//                case "Balls":
//                    itemResult.Balls = Integer.parseInt(trigger.Argvs()[0]);
//                    break;
//                case "AddMaxHp":
//                    itemResult.MaxHp = Integer.parseInt(trigger.Argvs()[0]);
//                    break;
//                case "AddMaxMp":
//                    itemResult.MaxMp = Integer.parseInt(trigger.Argvs()[0]);
//                    break;
//                case "AddBuff":
//                    itemResult.Buffs = JyBuff.Parse(trigger.Argvs()[0]);
//                    break;
//                case "AddMaxGengu":
//                    itemResult.MaxGengu = Integer.parseInt(trigger.Argvs()[0]);
//                    break;
//                case "AddMaxBili":
//                    itemResult.MaxBili = Integer.parseInt(trigger.Argvs()[0]);
//                    break;
//                case "AddMaxFuyuan":
//                    itemResult.MaxFuyuan = Integer.parseInt(trigger.Argvs()[0]);
//                    break;
//                case "AddMaxShenfa":
//                    itemResult.MaxShenfa = Integer.parseInt(trigger.Argvs()[0]);
//                    break;
//                case "AddMaxDingli":
//                    itemResult.MaxDingli = Integer.parseInt(trigger.Argvs()[0]);
//                    break;
//                case "AddMaxWuxing":
//                    itemResult.MaxWuxing = Integer.parseInt(trigger.Argvs()[0]);
//                    break;
//                case "AddMaxQuanzhang":
//                    itemResult.MaxQuanzhang = Integer.parseInt(trigger.Argvs()[0]);
//                    break;
//                case "AddMaxJianfa":
//                    itemResult.MaxJianfa = Integer.parseInt(trigger.Argvs()[0]);
//                    break;
//                case "AddMaxDaofa":
//                    itemResult.MaxDaofa = Integer.parseInt(trigger.Argvs()[0]);
//                    break;
//                case "AddMaxQimen":
//                    itemResult.MaxQimen = Integer.parseInt(trigger.Argvs()[0]);
//                    break;
//                case "Female":
//                    itemResult.Female = Integer.parseInt(trigger.Argvs()[0]);
//                    break;
//                default:
//                    if (name == "SwitchGameScene") {
//                        if (trigger.Argvs()String.Length > 4) {
//                            String[] array = trigger.Argvs()String.split(new char[]
//                                {
//                                    ','
//                                });
//                            if (array.Length != 0) {
//                                itemResult.SwitchGameScene = array[0];
//                                if (array.Length > 1) {
//                                    itemResult.SwitchGameScene = itemResult.SwitchGameScene + "#" + array[1];
//                                }
//                            }
//                        } else {
//                            itemResult.SwitchGameScene = "";
//                        }
//                    }
//                    LuaManager.Call("ITEM_OnTryUse", new object[]
//                        {
//                            source,
//                            target,
//                            trigger,
//                            itemResult
//                        });
//                    break;
//            }
//        }
//        return itemResult;
//    }


    // (get) Token: 0x0600040B RID: 1035 RVA: 0x0002C510 File Offset: 0x0002A710
    // [XmlIgnore]
//    public String descriptionInRichtext() {
//        {
//            String text = "";
//            text = text + "<color='black'>" + this.desc() + "</color>";
//            String equipCase = this.EquipCase;
//            if (!equipCase.equals("")) {
//                text = text + "\n\n<color='red'>装备要求:\n" + equipCase + "</color>";
//            }
//            if (this.triggers().size() > 0) {
//                text += "\n\n<color='green'>物品效果:\n";
//                for (JyTrigger trigger : this.triggers()) {
//                    text = text + trigger + "\n";
//                }
//                text += "</color>";
//            }
//            if (this.talents().length != 0) {
//                for (String name : this.talents()) {
//                    text = text + "<color='blue'>" + JyResource.getTalentInfo(name, false) + "</color>\n";
//                }
//            }
//            if (this.skills().size() > 0) {
//                text += "\n<color='white'>技能:\n";
//                for (JySkillInstance skillInstance : this.skills()) {
//                    text = Tools.concat(new String[]
//                        {
//                            text,
//                            "+",
//                            skillInstance.name,
//                            " 等级",
//                            "" + skillInstance.level(),
//                            "\n",
//                            skillInstance.JySkill().info,
//                            "\n"
//                        });
//                }
//                text += "</color>";
//            }
//            if (this.specialSkills().size() > 0) {
//                text += "\n<color='blue'>特殊技能:\n";
//                for (JySpecialSkillInstance specialSkillInstance : this.specialSkills()) {
//                    text = Tools.concat(new String[]
//                        {
//                            text,
//                            "+",
//                            specialSkillInstance.name,
//                            "\n",
//                            specialSkillInstance.JySpecialSkill.info,
//                            "\n"
//                        });
//                }
//                text += "</color>";
//            }
//            if (this.additionTriggers.size() > 0) {
//                text += "\n\n<color='green'>附加效果:\n";
//                for (JyTrigger trigger2 : this.additionTriggers) {
//                    text = text + trigger2 + "\n";
//                }
//                text += "</color>";
//            }
//            if (this.coolDown() > 0 && RuntimeData.Instance.gameMode != "normal") {
//                text = text + "\n冷却回合数 " + this.coolDown();
//            }
//            return text;
//        }
//    }


    // (get) Token: 0x0600040C RID: 1036 RVA: 0x00004349 File Offset: 0x00002549
    // [XmlIgnore]
//    public String DescriptionInRichtextBlackEnd() {
//        {
//            return this.descriptionInRichtext().replace("black", "white").replace("blue", "cyan")
//                .replaceAll("green", "yellow");
//        }
//    }

    public String getTypeStr() {
        switch (this.itemType()) {
            case Costa:
                return "战场消耗品";
            case Weapon:
                return "武器";
            case Armor:
                return "防具";
            case Accessories:
                return "饰品";
            case Book:
                return "武学经书";
            case Mission:
                return "任务物品";
            case SpecialSkillBook:
                return "消耗品：特技书";
            case TalentBook:
                return "消耗品：天赋书";
            case Upgrade:
                return "消耗品：永久增强性物品";
            case Special:
                return "特殊物品";
            case CanZhang:
                return "武学残章";
            case SwitchGameScene:
                return "神秘道具";
            default:
                return "";
        }
    }

    public String getLevelStr() {
        if (this.itemType() != ItemType.Weapon && this.itemType() != ItemType.Armor && this.itemType() != ItemType.Accessories) {
            return "";
        }
        if (this.additionTriggers.size() == 0) {
            return "【普通】\u3000";
        }
        if (this.additionTriggers.size() == 1) {
            return "【高级】\u3000";
        }
        if (this.additionTriggers.size() == 2) {
            return "【稀有】\u3000";
        }
        if (this.additionTriggers.size() == 3) {
            return "【神器】\u3000";
        }
        if (this.additionTriggers.size() == 4) {
            return "【史诗】\u3000";
        }
        if (this.additionTriggers.size() == 5) {
            return "【无双】\u3000";
        }
        if (this.additionTriggers.size() == 6) {
            return "【无双】\u3000\n★\u3000";
        }
        if (this.additionTriggers.size() == 7) {
            return "【无双】\u3000\n★★\u3000";
        }
        if (this.additionTriggers.size() == 8) {
            return "【无双】\u3000\n★★★\u3000";
        }
        if (this.additionTriggers.size() == 9) {
            return "【无双】\u3000\n★★★★\u3000";
        }
        if (this.additionTriggers.size() == 10) {
            return "【无双】\u3000\n★★★★★\u3000";
        }
        if (this.additionTriggers.size() == 11) {
            return "【GameMaster】\u3000";
        }
        if (this.additionTriggers.size() == 12) {
            return "【GameMaster】\u3000\n★\u3000";
        }
        if (this.additionTriggers.size() == 13) {
            return "【GameMaster】\u3000\n★★\u3000";
        }
        if (this.additionTriggers.size() == 14) {
            return "【GameMaster】\u3000\n★★★\u3000";
        }
        if (this.additionTriggers.size() == 15) {
            return "【GameMaster】\u3000\n★★★★\u3000";
        }
        if (this.additionTriggers.size() == 16) {
            return "【GameMaster】\u3000\n★★★★★\u3000";
        }
        return "\u3000\n【SuperGameMaster】\u3000";
    }

    public boolean hasTalent(String talent) {
        String[] array = talent.split("#");
        for (int i = 0; i < array.length; i++) {
            if (array[i].equals(talent)) {
                return true;
            }
        }
        for (JyTrigger trigger : this.triggers()) {
            if (trigger.name.equals("talent") && trigger.Argvs()[0].equals(talent)) {
                return true;
            }
        }
        for (JyTrigger trigger2 : this.additionTriggers) {
            if (trigger2.name.equals("talent") && trigger2.Argvs()[0].equals(talent)) {
                return true;
            }
        }
        return false;
    }

    // (get) Token: 0x0600040D RID: 1037 RVA: 0x0000437E File Offset: 0x0000257E
    // [XmlIgnore]
    public int type() {
        {
            return this.item().type;
        }
    }


//    public /*override*/ int GetHashCode() {
//        int num = 0;
//        CharSequence charSequence = this.getPK();
//        for (char c : charSequence) {
//            num += c;
//        }
//        return num;
//    }


//    public static JyItemInstance Generate(String name, boolean setRandomTriggers) {
//        return JyItem.getItem(name).Generate(setRandomTriggers);
//    }

    // (get) Token: 0x0600040E RID: 1038 RVA: 0x0000437E File Offset: 0x0000257E
    // [XmlIgnore]
    public ItemType itemType() {
        {
            return (ItemType.build(this.item().type));
        }
    }

    // (get) Token: 0x0600040F RID: 1039 RVA: 0x0000438B File Offset: 0x0000258B
    // [XmlIgnore]
    public JyItem item() {
        {
            if (this._item == null) {
                this._item = JyItem.getItem(this.name);
            }
            return this._item;
        }
    }

    public /*override*/ boolean equals(JyItemInstance obj) {
        return this.getPK() == obj.getPK();
    }

    // (get) Token: 0x06000413 RID: 1043 RVA: 0x000043DC File Offset: 0x000025DC
    // [XmlIgnore]
    public List<JySkillInstance> skills() {
        {
            return this.item().skills;
        }
    }

    // (get) Token: 0x06000414 RID: 1044 RVA: 0x000043E9 File Offset: 0x000025E9
    // [XmlIgnore]
    public List<JySpecialSkillInstance> specialSkills() {
        {
            return this.item().specialSkills;
        }
    }
}